package 力扣;
//给定两个以字符串形式表示的非负整数 num1 和 num2，
// 返回 num1 和 num2 的乘积，它们的乘积也表示为字符串形式。
public class 字符串相乘 {
    public static void main(String[] args) {
        String s = multiply("9133", "0");
        System.out.println(s);
    }
    public static String multiply(String num1, String num2) {
        //将字符串转换成数字    当数字过大时就不成立
//        long m=Integer.valueOf(num1);
//        long n=Integer.valueOf(num2);
//        long result=m*n;
//        String str=String.valueOf(result);
//        return str;
        if (num1=="0" || num2=="0")
            return "0";
         int m=num1.length();
         int n=num2.length();
         int[] res = new int[m + n];
        for (int i = m-1; i >=0 ; i--) {
            for (int j=n-1;j>=0;j--){
                int p=i+j;
                int q=i+j+1;
                int sum=(num1.charAt(i)-'0')*(num2.charAt(j)-'0')+res[q];
                res[q]=sum%10;
                res[p]+=sum/10;
            }
        }
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < res.length; i++) {
            if (res[i]==0 && i==0)
                continue;
            builder.append(res[i]);
        }
        return builder.toString();
    }
 }
